package com.microsoft.hsg.request;



import com.microsoft.hsg.Request;

/**
 * The Interface RequestTemplate.  This interface represents
 * a template capable of sending requests and receiving responses
 * from HealthVault.  Examples of concrete templates are OnlineRequestTemplate
 * for making calls to HealthVault while the user is online, and OfflineRequestTemplate
 * for making calls to HealthVault while the user is offline.
 */
public interface RequestTemplate {

	/**
	 * Make request.
	 * 
	 * @param request the request
	 */
	public abstract void makeRequest(Request request);

	/**
	 * Make request.
	 * 
	 * @param request the request
	 * @param marshaller the marshaller
	 * 
	 * @return the object
	 */
	public abstract Object makeRequest(Request request, RequestMarshaller marshaller);

}